#include "common_init.h"
#include "common_config_manager.h"
#include "common_shell.h"
#include "common_product_definition.h"
#include "common_config_init.h"
#include "common_user_manager.h"

namespace El {
namespace Common {

bool common_init(nlohmann::json &config)
{
    Shell::GetInstance().Start();
    ProductDefinition::GetInstance().LoadFromFile(config["product"].get<std::string>());
    ConfigManager::GetInstance().LoadConfig(config["general"].get<std::string>(),config["default"].get<std::string>());
    ConfigInit::GetInstance().InitDefaultConfig();
    UserManager::GetInstance().Init();
    return true;
}

} // namespace Common
} // namespace El